package handlers

import (
	"fmt"
	"log"
	"time"
)

func parseTimestamp(data map[string]interface{}, timestampKey string) time.Time {
	// 获取 timestamp，进行类型断言，将其从 interface{} 转为 float64 类型
	timestampRaw, ok := data[timestampKey].(float64)
	if !ok {
		log.Fatalf("无法将 %s 转换为 float64", timestampKey)
	}

	// 将 float64 转换为秒和纳秒（因为是毫秒单位的时间戳）
	seconds := int64(timestampRaw / 1000)
	nanoseconds := int64((timestampRaw - float64(seconds*1000)) * 1e6)

	// 将秒和纳秒转换为 time.Time 对象
	parsedTime := time.Unix(seconds, nanoseconds)

	return parsedTime
}

func main() {
	// 模拟从 map 获取到的数据
	data := map[string]interface{}{
		"timestamp": 1.727573393717e+12,
	}

	// 调用函数解析并格式化时间
	formattedTime := parseTimestamp(data, "timestamp")

	// 打印解析后的时间
	fmt.Println("Parsed Time:", formattedTime)
}
